FIT2-2021b 第07回 マウスクリックゲーム
本日の授業の流れ
前回授業の解説(クラスとオブジェクト)
概要設計書、詳細設計書等に関しては次回解説します
サンプルゲームの解説 1件
以後ミニプロワーク時間
アンケートを取得して最も多かった分類のゲームに関してアドリブで実装指針の解説を試みます
前回授業の解説
クラスとオブジェクト
https://gyazo.com/8c0e7cc3906b316b629f8985196409c6
まずは雰囲気でつかもう
code:python
class Ball:
speed = 1
def __init__(self):
self.x = random.randint(0,199)
self.y = 0
angle = math.radians(random.randint(30, 150))
self.vx = math.cos(angle)
self.vy = math.sin(angle)
def move(self):
self.x += self.vx * Ball.speed
self.y += self.vy * Ball.speed
ball = Ball()
ball.move()
ボールの「設計図」 = class Ball:... 部分
ボールは…
ボールという概念自体がspeedという値持っており speed = 1
__init__(=初期化) するときに、作られたボール自身(self) にx, y, vx, vyという値を記録する
作られたballはmoveという処理を持っていて、moveするときはxとyを増やす
ball = Ball() 部分
設計図に則ってボールを1つ作る
ball.move() 部分
作成されたボール (ball) に対して、moveを実行するように指示する
Ball.speed, self.x, ball.move()
主語が全て違うが、理解するとカンタン
Ball = こればボールという概念、設計図自体を指す
ball = Ball() => 設計図に則ってボールを作成する
Ball.speed => ボールという概念全体のスピードを参照したり変更したりする
self. => これはボールの設計定義中出だけ使う
self.x, self.move()
ball.move() => 作成されたボール自体を操作する
あまり難しく考えないようにしよう
既存のゲームを調査し、「こういうゲームを作りたい」
「だいたいこういう挙動をするゲーム」
さえ言語化できれば良し
サンプルゲームの解説
注意:サンプルゲームからそのままコピーされたと思われるコードは「採点対象」には含めません! e.g. クラスの利用、乱数の利用、繰り返し等
必ず「要素を足す」形で点数を得ていってください
企画の分類をアンケート取ってみよう
横スクロールゲーム / 縦スクロールゲーム (e.g. jumpgame, flappy bird)
シューティングゲーム
音ゲー (e.g. 太鼓の達人、beatmania)
テーブルゲーム (e.g. すごろく等)
ノベルゲーム (e.g. 逆転裁判)
ダンジョン探索ゲーム
パズルゲーム
ブロック崩し
その他…なんだろう?
ノーアイデア
基本的にはpyxelのサンプルコード「jump_game」の解説をする予定
採点基準として、「もともとサンプルコードに入っていた処理」は加点対象外です
原則自分で追加実装した部分だけを評価対象とします